package com.jackstraw.jack_base.rules.entity.po;

import com.jackstraw.jack_base.datasource.mybatis.base.entity.po.PoExample;
import com.jackstraw.jack_base.util.JsonUtil;
import com.jackstraw.jack_base.util.ObjectUtil;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;


/**
 * 场景规则组关系表	实体层PoExample
 *
 * @author zhaozhao 945514650@qq.com
 * @since version:1.0 generatorDate:2022-12-04 14:28:28
 */
public class RelationRipPoExample extends PoExample<RelationRipPoExample.Criteria, RelationRipPo> {

	public RelationRipPoExample() {
		super();
	}

	@Override
	public void addKey(Map<String, Object> params) {
		RelationRipPo po = JsonUtil.mapToBean(params, this.poClass);
		if (ObjectUtil.ObjectUtilByLang3.isNotEmpty(po)) {
			if (ObjectUtil.ObjectUtilByLang3.isNotEmpty(po.getRipRelationId())) {
				this.createCriteria().andRipRelationIdEqualTo(po.getRipRelationId());
			}
 		}
	}

	@Override
	protected Criteria createCriteriaInternal() {
		return new Criteria();
	}


	protected abstract static class GeneratedCriteria {
		protected List<Criterion> criteria;

		protected GeneratedCriteria() {
			super();
			criteria = new ArrayList<Criterion>();
		}

		public boolean isValid() {
			return criteria.size() > 0;
		}

		public List<Criterion> getAllCriteria() {
			return criteria;
		}

		public List<Criterion> getCriteria() {
			return criteria;
		}

		protected void addCriterion(String condition) {
			if (condition == null) {
				throw new RuntimeException("Value for condition cannot be null");
			}
			criteria.add(new Criterion(condition));
		}

		protected void addCriterion(String condition, Object value, String property) {
			if (value == null) {
				throw new RuntimeException("Value for " + property + " cannot be null");
			}
			criteria.add(new Criterion(condition, value));
		}

		protected void addCriterion(String condition, Object value1, Object value2, String property) {
			if (value1 == null || value2 == null) {
				throw new RuntimeException("Between values for " + property + " cannot be null");
			}
			criteria.add(new Criterion(condition, value1, value2));
		}

		public Criteria andRipRelationIdIsNull() {
			addCriterion("rip_relation_id is null");
			return (Criteria) this;
		}

		public Criteria andRipRelationIdIsNotNull() {
			addCriterion("rip_relation_id is not null");
			return (Criteria) this;
		}

		public Criteria andRipRelationIdEqualTo(Long value) {
			addCriterion("rip_relation_id =", value, "ripRelationId");
			return (Criteria) this;
		}

		public Criteria andRipRelationIdNotEqualTo(Long value) {
			addCriterion("rip_relation_id <>", value, "ripRelationId");
			return (Criteria) this;
		}

		public Criteria andRipRelationIdGreaterThan(Long value) {
			addCriterion("rip_relation_id >", value, "ripRelationId");
			return (Criteria) this;
		}

		public Criteria andRipRelationIdGreaterThanOrEqualTo(Long value) {
			addCriterion("rip_relation_id >=", value, "ripRelationId");
			return (Criteria) this;
		}

		public Criteria andRipRelationIdLessThan(Long value) {
			addCriterion("rip_relation_id <", value, "ripRelationId");
			return (Criteria) this;
		}

		public Criteria andRipRelationIdLessThanOrEqualTo(Long value) {
			addCriterion("rip_relation_id <=", value, "ripRelationId");
			return (Criteria) this;
		}

		public Criteria andRipRelationIdIn(List<Long> values) {
			addCriterion("rip_relation_id in", values, "ripRelationId");
			return (Criteria) this;
		}

		public Criteria andRipRelationIdNotIn(List<Long> values) {
			addCriterion("rip_relation_id not in", values, "ripRelationId");
			return (Criteria) this;
		}

		public Criteria andRipRelationIdBetween(Long value1, Long value2) {
			addCriterion("rip_relation_id between", value1, value2, "ripRelationId");
			return (Criteria) this;
		}

		public Criteria andRipRelationIdNotBetween(Long value1, Long value2) {
			addCriterion("rip_relation_id not between", value1, value2, "ripRelationId");
			return (Criteria) this;
		}


		public Criteria andRuleIdIsNull() {
			addCriterion("rule_id is null");
			return (Criteria) this;
		}

		public Criteria andRuleIdIsNotNull() {
			addCriterion("rule_id is not null");
			return (Criteria) this;
		}

		public Criteria andRuleIdEqualTo(Long value) {
			addCriterion("rule_id =", value, "ruleId");
			return (Criteria) this;
		}

		public Criteria andRuleIdNotEqualTo(Long value) {
			addCriterion("rule_id <>", value, "ruleId");
			return (Criteria) this;
		}

		public Criteria andRuleIdGreaterThan(Long value) {
			addCriterion("rule_id >", value, "ruleId");
			return (Criteria) this;
		}

		public Criteria andRuleIdGreaterThanOrEqualTo(Long value) {
			addCriterion("rule_id >=", value, "ruleId");
			return (Criteria) this;
		}

		public Criteria andRuleIdLessThan(Long value) {
			addCriterion("rule_id <", value, "ruleId");
			return (Criteria) this;
		}

		public Criteria andRuleIdLessThanOrEqualTo(Long value) {
			addCriterion("rule_id <=", value, "ruleId");
			return (Criteria) this;
		}

		public Criteria andRuleIdIn(List<Long> values) {
			addCriterion("rule_id in", values, "ruleId");
			return (Criteria) this;
		}

		public Criteria andRuleIdNotIn(List<Long> values) {
			addCriterion("rule_id not in", values, "ruleId");
			return (Criteria) this;
		}

		public Criteria andRuleIdBetween(Long value1, Long value2) {
			addCriterion("rule_id between", value1, value2, "ruleId");
			return (Criteria) this;
		}

		public Criteria andRuleIdNotBetween(Long value1, Long value2) {
			addCriterion("rule_id not between", value1, value2, "ruleId");
			return (Criteria) this;
		}


		public Criteria andPackageIdIsNull() {
			addCriterion("package_id is null");
			return (Criteria) this;
		}

		public Criteria andPackageIdIsNotNull() {
			addCriterion("package_id is not null");
			return (Criteria) this;
		}

		public Criteria andPackageIdEqualTo(Long value) {
			addCriterion("package_id =", value, "packageId");
			return (Criteria) this;
		}

		public Criteria andPackageIdNotEqualTo(Long value) {
			addCriterion("package_id <>", value, "packageId");
			return (Criteria) this;
		}

		public Criteria andPackageIdGreaterThan(Long value) {
			addCriterion("package_id >", value, "packageId");
			return (Criteria) this;
		}

		public Criteria andPackageIdGreaterThanOrEqualTo(Long value) {
			addCriterion("package_id >=", value, "packageId");
			return (Criteria) this;
		}

		public Criteria andPackageIdLessThan(Long value) {
			addCriterion("package_id <", value, "packageId");
			return (Criteria) this;
		}

		public Criteria andPackageIdLessThanOrEqualTo(Long value) {
			addCriterion("package_id <=", value, "packageId");
			return (Criteria) this;
		}

		public Criteria andPackageIdIn(List<Long> values) {
			addCriterion("package_id in", values, "packageId");
			return (Criteria) this;
		}

		public Criteria andPackageIdNotIn(List<Long> values) {
			addCriterion("package_id not in", values, "packageId");
			return (Criteria) this;
		}

		public Criteria andPackageIdBetween(Long value1, Long value2) {
			addCriterion("package_id between", value1, value2, "packageId");
			return (Criteria) this;
		}

		public Criteria andPackageIdNotBetween(Long value1, Long value2) {
			addCriterion("package_id not between", value1, value2, "packageId");
			return (Criteria) this;
		}


		public Criteria andCreateTimeIsNull() {
			addCriterion("create_time is null");
			return (Criteria) this;
		}

		public Criteria andCreateTimeIsNotNull() {
			addCriterion("create_time is not null");
			return (Criteria) this;
		}

		public Criteria andCreateTimeEqualTo(Date value) {
			addCriterion("create_time =", value, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeNotEqualTo(Date value) {
			addCriterion("create_time <>", value, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeGreaterThan(Date value) {
			addCriterion("create_time >", value, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
			addCriterion("create_time >=", value, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeLessThan(Date value) {
			addCriterion("create_time <", value, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
			addCriterion("create_time <=", value, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeIn(List<Date> values) {
			addCriterion("create_time in", values, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeNotIn(List<Date> values) {
			addCriterion("create_time not in", values, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeBetween(Date value1, Date value2) {
			addCriterion("create_time between", value1, value2, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
			addCriterion("create_time not between", value1, value2, "createTime");
			return (Criteria) this;
		}


		public Criteria andUpdateTimeIsNull() {
			addCriterion("update_time is null");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeIsNotNull() {
			addCriterion("update_time is not null");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeEqualTo(Date value) {
			addCriterion("update_time =", value, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeNotEqualTo(Date value) {
			addCriterion("update_time <>", value, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeGreaterThan(Date value) {
			addCriterion("update_time >", value, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
			addCriterion("update_time >=", value, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeLessThan(Date value) {
			addCriterion("update_time <", value, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
			addCriterion("update_time <=", value, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeIn(List<Date> values) {
			addCriterion("update_time in", values, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeNotIn(List<Date> values) {
			addCriterion("update_time not in", values, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeBetween(Date value1, Date value2) {
			addCriterion("update_time between", value1, value2, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
			addCriterion("update_time not between", value1, value2, "updateTime");
			return (Criteria) this;
		}

	}

	public static class Criteria extends GeneratedCriteria {

		protected Criteria() {
			super();
		}
	}
}